#region License Information
// Copyright (c) 2005 - 2009, Allan Spartacus Mangune (allan@owlpal.com)
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, 
// are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice, this list 
//   of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright notice, this list of 
//   conditions and the following disclaimer in the documentation and/or other materials provided 
//   with the distribution.
//
// * Neither the name of Owlpal nor the names of its contributors may be used to endorse or 
//   promote products derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 
// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 
// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
#endregion

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Specialized;

namespace Owlpal.Utils.Syndication
{
    /// <summary>
    /// 
    /// </summary>
    public class OptionalRSSChannelElements : NameValueCollection
    {
        private string timeToLive = string.Empty;

        private string language = string.Empty;
        private string publicationDate = string.Empty;
        private string lastBuildDate = string.Empty;
        private string docsLink = string.Empty;
        private string generator = string.Empty;
        private string managingEditor = string.Empty;
        private string webMaster = string.Empty;
        private string copyright = string.Empty;
        private string category = string.Empty;
        private string cloud = string.Empty;
        private string image = string.Empty;
        private string rating = string.Empty;
        private string textInput = string.Empty;
        private string skipHours = string.Empty;
        private string skipDays = string.Empty;

        /// <summary>
        /// 
        /// </summary>
        public string Category
        {
            get { return this.category; }
            set { this.category = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string Cloud
        {
            get { return this.cloud; }
            set { this.cloud = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string Image
        {
            get { return this.image; }
            set { this.image = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string Rating
        {
            get { return this.rating; }
            set { this.rating = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string TextInput
        {
            get { return this.textInput; }
            set { this.textInput = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string SkipHours
        {
            get { return this.skipHours; }
            set { this.skipHours = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string SkipDays
        {
            get { return this.skipDays; }
            set { this.SkipDays = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string TimeToLive
        {
            get { return this.timeToLive; }
            set { this.timeToLive = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string Language
        {
            get { return this.language; }
            set { this.language = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string PublicationDate
        {
            get { return this.publicationDate; }
            set { this.publicationDate = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string LastBuildDate
        {
            get { return this.LastBuildDate; }
            set { this.lastBuildDate = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string DocsLink
        {
            get { return this.docsLink; }
            set { this.docsLink = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string Generator
        {
            get { return this.generator; }
            set { this.generator = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string ManagingEditor
        {
            get { return this.managingEditor; }
            set { this.managingEditor = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string WebMaster
        {
            get { return this.webMaster; }
            set { this.webMaster = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public string Copyright
        {
            get { return this.copyright; }
            set { this.copyright = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public void Bind()
        { 
            this.Add("language", this.language);
            this.Add("copyright", this.copyright);
            this.Add("managingEditor", this.managingEditor);
            this.Add("webMaster", this.webMaster);
            this.Add("pubDate", this.publicationDate);
            this.Add("lastBuildDate", this.lastBuildDate);
            this.Add("category", this.category);
            this.Add("generator", this.generator);
            this.Add("docs", this.docsLink);
            this.Add("cloud", this.cloud);
            this.Add("ttl", this.timeToLive);
            this.Add("image", this.image);
            this.Add("rating", this.rating);
            this.Add("textInput", this.textInput);
            this.Add("skipHours", this.skipHours);
            this.Add("skipDays", this.skipDays);
        }
    }
}
